Управляющие конструкции: if, elif, else


Определения

Управляющая конструкция в программировании - это текстовый способ сказать компьютеру, при каких условиях и для каких данных выполнить набор комманд, а когда - не выполнять.

Конструкция if

# Сначала - ключевое слово if
# условие - некоторое выражение, которое можно понять как "ДА"/"ВЕРНО" или "НЕТ"/"НЕВЕРНО" 
# ... команды - набор команд, которые выполняются только ЕСЛИ УСЛОВИЕ ВЕРНО

if условие:
    ... команды

Конструкция if / else

# Сначала - ключевое слово if
# условие - некоторое выражение, которое можно понять как
# "ДА"/"ВЕРНО" или "НЕТ"/"НЕВЕРНО" 
# ... команды - набор команд, которые выполняются только ЕСЛИ УСЛОВИЕ ВЕРНО
# ключевое слово else
# ... другие команды - набор команд, которые выполняются только ЕСЛИ УСЛОВИЕ НЕВЕРНО

if условие:
    ... команды
else:
    ... другие команды

Конструкция if / elif / else

# Сначала - ключевое слово if
# условие - проверка/выражение, результат которой можно понять как "ДА"/"ВЕРНО" или "НЕТ"/"НЕВЕРНО" 
# ... команды - набор команд, которые выполняются только ЕСЛИ УСЛОВИЕ ВЕРНО
# ключевое слово elif - после него будет проверка другого условия, если предыдущие условия неверны
# ключевое слово else
# ... другие команды - набор команд, которые ЕСЛИ УСЛОВИЕ НЕВЕРНО, А ДРУГОЕ УСЛОВИЕ ВЕРНО

if условие:
    ... команды
elif другое условие:
    ... другие команды
else:
    ... команды, если ни одно условие не сработало

Примеры

Проверка равенства значения переменной:

Проверка текста, чтобы в нем было хотя бы 2 символа:


Вопросы

Что будет выведено экран после запуска данного кода?

def check_string(s):
    if len(s) > 3:
        return 1
    elif int(s) > 3:
        return 2
    else:
        return 3
a = '231'
print(check_string(a))


Упражнения

Есть только одно издавна употребляемое русское мужское имя из 2 букв - Ян (вариация имени Иоанн), но в наше время детей ещё называют именем Яр (обычно путая значение слова). Напишите функцию, которая проверяет длину имени, и возвращает значение True ("верно"), если имя не короче 3 букв, либо является одним из вышеупомянутых, а в остальных случаях возвращает False.

def proverka_imeni(imia):
    # исправьте
    return True
print( proverka_imeni("Ян") )
print( proverka_imeni("Иван") )
print( proverka_imeni("И") )


***

Напишите функцию, которая определяет, можно ли взять выпускника школы в университет на специальность "Программирование". Функция принимает следующие три параметра: оценку на экзамене по ИТ (от 0 до 100), оценку на экзамене по математике, и средний балл по всем экзаменам. Функция должна выдать True, если 1) оценка по ИТ выше 90, по математике - выше 80, а средний балл выше 70; 2) оценка по ИТ выше 85, а средний балл - выше 75. В остальных случаях функия должна выдать False.

def priniat(o_it, o_mat, o_sr):
    # Напишите решение
    return False


Домашние задания

Напишите функцию, которая определяет, выдать ли стипендию студенту специальности "Программирование". Функция принимает два параметра: среднюю оценку студента по всем предметам и среднюю оценку всех студентов курса. Функция должна выдать True, если 1) оценка студента выше 9.5: 2) оценка студента выше 8.5 и выше средней оценки всех студентов на 30%. В остальных случаях она должна выдать False

def vydat(o_studenta, o_studentov):
    # Напишите решение
    return False


***

Одна неадекватная учительница очень бурно реагирует на оценки учеников.

  • Если ученик(-ца) получил(-а) оценку 10, она его(её) крепко обнимает, отрывает от пола и кружит на месте.
  • Если ученик(-ца) получила(-а) оценку 7, 8 или 9, она его(её) гладит по голове.
  • Если ученик(-ца) получила(-а) оценку 5 или 6, она укоризненно качает пальцем.
  • Если ученик(-ца) получила(-а) оценку 4, она мальчику даёт подзатыльника, а девочку строго отчитывает.
  • Если ученик(-ца) получила(-а) оценку 3 или меньше, она топает ногами и кричит "родителей в школу!".

Напишите функцию, которая выдает текст с описанием того, что делает учительница. Функция принимает два параметра: оценку ученика (целое число от 1 до 10) и пол ученика (текст "м" или "ж").

def burnaja_reakcija(ocenka, pol):
    # напишите код функции
print(burnaja_reakcija(10, "м"))
print(burnaja_reakcija(10, "ж"))
print(burnaja_reakcija(5, "ж"))
print(burnaja_reakcija(4, "ж"))
print(burnaja_reakcija(4, "м"))
print(burnaja_reakcija(3, "м"))


Следующая тема: while